package com.leonelviera.andronotes;

import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class NotaEditor extends Activity {

    private EditText mTitleText;
    private EditText mBodyText;
    private Long mId;
    private NotasBdAdaptador mDbHelper;
	private Integer mUsuario_id;
	private int mNota_id;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        mUsuario_id = new Integer(getIntent().getExtras().getInt("usuario_id"));
        mDbHelper = new NotasBdAdaptador(this);
        mDbHelper.open();
        
        setContentView(R.layout.nota_editar);
        setTitle(R.string.editar_nota);

        mTitleText = (EditText) findViewById(R.id.title);
        mBodyText = (EditText) findViewById(R.id.body);

        Button guardarButton = (Button) findViewById(R.id.confirm);

        mId = (savedInstanceState == null) ? null : (Long) savedInstanceState.getSerializable(NotasBdAdaptador.COL_ID);
        if (mId == null && getIntent().getExtras().containsKey(NotasBdAdaptador.COL_ID)) {
        	
            Bundle extras = getIntent().getExtras();
            mId = extras != null ? extras.getLong(NotasBdAdaptador.COL_ID)
                                    : null;
        }
        
        obtenerDatos();
        
        guardarButton.setOnClickListener(new View.OnClickListener() {

        	public void onClick(View view) {
        	    setResult(RESULT_OK);
        	    finish();
        	}

        });
    }
    
    private void obtenerDatos() {
        if (mId != null) {
            Cursor nota = mDbHelper.getNota(mId);
            startManagingCursor(nota);
            mTitleText.setText(nota.getString(nota.getColumnIndexOrThrow(NotasBdAdaptador.COL_TITULO)));
            mBodyText.setText(nota.getString(nota.getColumnIndexOrThrow(NotasBdAdaptador.COL_DESCRIP)));
            mNota_id = nota.getInt(nota.getColumnIndexOrThrow(NotasBdAdaptador.COL_NOTA_ID));
        }
    }
    
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        guardarEstado();
        outState.putSerializable(NotasBdAdaptador.COL_ID, mId);
    }
    
    @Override
    protected void onPause() {
        super.onPause();
        guardarEstado();
    }
    
    @Override
    protected void onResume() {
        super.onResume();
        obtenerDatos();
    }
    
    private void guardarEstado() {
        String titulo = mTitleText.getText().toString();
        String descripcion = mBodyText.getText().toString();

        if (mId == null) {
            long id = mDbHelper.crearNota(titulo, descripcion, mUsuario_id);
            if (id > 0) {
                mId = id;
            }
        } else {
            mDbHelper.modificarNota(mId, titulo, descripcion,mNota_id);
        }
    }
} // class
